package realQuestion.tuan8_19;

import java.util.Scanner;

public class Test3 {
//    1 小美定义一个 01 串的权值为：每次操作选择一位取反，使得相邻字
//            符都不相等的最小操作次数
//2 例如10001”的权值是 1，因为只需要修改一次；对第三个字符取反
//            即可
//    现在小美拿到了一个 01 串，她希望你求出所有非空连续子串的权值之和，你能帮帮她吗？
//    输入描述
//    个仅包含'0'和"1'的字符串，长度不超过2000。
//    输出描述
//    所有非空子串的权值和。
//            ]示例1
//    输入输出示例仅供调试，后台判题数据一般不包含示例
//            输入
//10001
//    算制
//            输出
//8
//    说明
//    长度为2的子串中，有2个"00"的权值是1。
//    Java解决上述问题
//






}

class  Main3{

//    public static void main(String[] args) {
//        Scanner scanner = new Scanner(System.in);
//        String s = scanner.nextLine();
//        int length = s.length();
//        int[] dp = new int[length];
//        int[] count = new int[length];
//        dp[0]=0;
//        count[0]=1;
//        for (int i = 1; i < length; i++) {
//
//            if (s.charAt(i)!=s.charAt(i-1))
//            {
//                dp[i]=dp[i-1]+1;
//                count[i]=count[i-1];
//            }
//            else {
//                dp[i]=dp[i-1];
//                count[i]=count[i-1]+1;
//            }
//        }
//        int sum=0;
//        for (int i = 0; i < length; i++) {
//            sum+=dp[i]*count[i];
//        }
//        System.out.println(sum);
//
//
//    }


//    public static void main(String[] args) {
//        Scanner scanner = new Scanner(System.in);
//        String input = scanner.nextLine();
//        int n = input.length();
//        long totalWeight = 0;
//
//        // Iterate through all possible substrings
//        for (int i = 0; i < n; i++) {
//            for (int j = i + 1; j <= n; j++) {
//                String substring = input.substring(i, j);
//                totalWeight += calculateWeight(substring);
//            }
//        }
//
//        System.out.println(totalWeight);
//    }
//
//    // Function to calculate the weight of a substring
//    private static int calculateWeight(String substring) {
//        int weight = 0;
//        char prevChar = ' ';
//
//        for (char c : substring.toCharArray()) {
//            if (c == prevChar) {
//                weight++;
//                prevChar = (c == '0') ? '1' : '0';
//            } else {
//                prevChar = c;
//            }
//        }
//
//        return weight;
//    }


    //TODO:2023/8/21 绝妙啊
    public static void main(String[] args) {
        Scanner scanner = new Scanner(System.in);
        char[] s = scanner.next().toCharArray();
        int n = s.length;
        int ans = 0;

        for (int i = 0; i < n; i++) {
            int cnt = 0;
            for (int j = i; j < n; j++) {
                cnt += (s[j] & 1) == ((j - i) & 1) ? 1 : 0;
                ans += Math.min(cnt, j - i + 1 - cnt);
            }
        }

        System.out.println(ans);
    }
}


